package org.web.accesscontrollist.sdk.dto.query;

import lombok.Getter;
import lombok.Setter;
import org.web.base.domain.QueryBase;

import javax.validation.constraints.NotBlank;
import java.util.List;

@Setter
@Getter
public class QueryAclResourceDetailRequest extends QueryBase {


    /**
     * Exact query by aclResourceDetailId, The meaning of 'aclResourceDetailId' is 主键，资源信息唯一标识。
     */
    private Long aclResourceDetailId;

    /**
     * In query by aclResourceDetailId, The meaning of 'aclResourceDetailId' is 主键，资源信息唯一标识。
     */
    private List<Long> aclResourceDetailIdList;

    /**
     * Exact query by aclResourceDefinitionId, The meaning of 'aclResourceDefinitionId' is 外键，定义表外键。
     */
    private Long aclResourceDefinitionId;

    /**
     * In query by aclResourceDefinitionId, The meaning of 'aclResourceDefinitionId' is 外键，定义表外键。
     */
    private List<Long> aclResourceDefinitionIdList;

    /**
     * Exact query by businessLine, The meaning of 'businessLine' is 业务线，内部权限管理都围绕业务线展开。
     */
    @NotBlank(message = "businessLine can't be blank. ")
    private String businessLine;

    /**
     * Exact query by definitionName, The meaning of 'definitionName' is 资源定义，用于资源定义，来源于资源定义。
     */
    private String definitionName;

    /**
     * Exact query by definitionAllowShow, The meaning of 'definitionAllowShow' is 允许查询, 用于表示资源信息是否允许被所有人查看。Y，表示允许，N表示不允许，来源于资源定义表。
     */
    private String definitionAllowShow;

    /**
     * Exact query by detailName, The meaning of 'detailName' is 资源详情名称，业务、资源定义、资源详情名称三者逻辑唯一。
     */
    private String detailName;

    /**
     * Exact query by detailStatus, The meaning of 'detailStatus' is 资源详情状态，ON生效,OFF失效。
     */
    private String detailStatus;

    /**
     * In query by detailStatus, The meaning of 'detailStatus' is 资源详情状态，ON生效,OFF失效。
     */
    private List<String> detailStatusList;

    /**
     * Exact query by sortNum, The meaning of 'sortNum' is 排序，排序用于列表展示排序，多为数值。
     */
    private String sortNum;

    /**
     * Greater than sortNum query, The meaning of 'sortNum' is 排序，排序用于列表展示排序，多为数值。
     */
    private String moreThanSortNum;

    /**
     * Less than sortNum query, The meaning of 'sortNum' is 排序，排序用于列表展示排序，多为数值。
     */
    private String lessThanSortNum;

    /**
     * Greater and equal than sortNum query, The meaning of 'sortNum' is 排序，排序用于列表展示排序，多为数值。
     */
    private String equalAndMoreThanSortNum;

    /**
     * Less and equal than sortNum query, The meaning of 'sortNum' is 排序，排序用于列表展示排序，多为数值。
     */
    private String equalAndLessThanSortNum;


    /**
     * Exact query by resourceLevel, The meaning of 'resourceLevel' is 资源等级，用树状结构描述资源。
     */
    private Long resourceLevel;

    /**
     * Exact query by firstLevel, The meaning of 'firstLevel' is 一级，描述一级资源内容。
     */
    private String firstLevel;


    /**
     * Exact query by secondLevel, The meaning of 'secondLevel' is 二级，描述二级资源内容。
     */
    private String secondLevel;

    /**
     * In query by secondLevel, The meaning of 'secondLevel' is 二级，描述二级资源内容。
     */
    private List<String> secondLevelList;

    /**
     * Exact query by thirdLevel, The meaning of 'thirdLevel' is 三级，描述三级资源内容。
     */
    private String thirdLevel;

    /**
     * In query by thirdLevel, The meaning of 'thirdLevel' is 三级，描述三级资源内容。
     */
    private List<String> thirdLevelList;

    /**
     * Exact query by fourthLevel, The meaning of 'fourthLevel' is 四级，描述四级资源内容。
     */
    private String fourthLevel;

    /**
     * In query by fourthLevel, The meaning of 'fourthLevel' is 四级，描述四级资源内容。
     */
    private List<String> fourthLevelList;

    /**
     * Exact query by fifthLevel, The meaning of 'fifthLevel' is 五级，描述五级资源内容。
     */
    private String fifthLevel;

    /**
     * In query by fifthLevel, The meaning of 'fifthLevel' is 五级，描述五级资源内容。
     */
    private List<String> fifthLevelList;

    /**
     * Exact query by operatorNum, The meaning of 'operatorNum' is 操作员ID，上次修改记录的操作人员工号，唯一标识操作人员。
     */
    private String operatorNum;

    /**
     * In query by operatorNum, The meaning of 'operatorNum' is 操作员ID，上次修改记录的操作人员工号，唯一标识操作人员。
     */
    private List<String> operatorNumList;

    /**
     * Exact query by operatorName, The meaning of 'operatorName' is 操作员，上次修改记录的操作人员名称。
     */
    private String operatorName;

    /**
     * In query by operatorName, The meaning of 'operatorName' is 操作员，上次修改记录的操作人员名称。
     */
    private List<String> operatorNameList;

    /**
     * Exact query by isDelete, The meaning of 'isDelete' is 删除，记录是否逻辑删除，Y表示逻辑删除，N表示没有删除。
     */
    private String isDelete;
}
